* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

button,
input[type="number"],
select {
  border: #ccc solid 2px;
  padding: 0.7em 1em;
  border-radius: 10px;
  margin: 2px;
  transition: all 0.3s;

  &:hover,
  &:focus {
    background-color: #333;
    color: #fff;
    box-shadow: #aaa 0 0 5px;
  }

  &::-webkit-inner-spin-button {
    display: none;
  }
}

input[type="number"],
select {
  padding: 0.5em;
  border-radius: 7px;
}

input[type="color"] {
  border: #ccc solid 2px;
  border-radius: 3px;
  margin: 2px;
  transition: all 0.3s;

  &::-webkit-color-swatch-wrapper {
    padding: 0;
  }

  &::-webkit-color-swatch {
    border: none;
  }

  &:hover,
  &:focus {
    box-shadow: #aaa 0 0 10px;
  }
}

html {
  height: 100%;

  body {
    overflow-x: hidden;
    background-image: linear-gradient(to top right, #ddd, #ccc);
    height: 100%;

    h1 {
      text-align: center;
      margin: 0.5em 0;

      &::before,
      &::after {
        content: "/////";
        margin: 0 0.5em;
        color: rebeccapurple;
      }
    }

    .shapeSelect,
    .normalGameDiv {
      text-align: center;
      position: relative;

      .wip:hover::before {
        content: "制作中";
        position: absolute;
        top: 4em;
        color: #000;
        font-weight: bold;
      }
    }

    .normalOption {
      border: #ccc solid 2px;
      border-radius: 10px;
      padding: 1em;
      margin: 1em;
      box-shadow: #aaa 0 0 2px;

      label {
        display: block;
      }

      :not(label) {
        margin-bottom: 0.5em;
      }

      button {
        display: block;
      }
    }

    .normalGameDiv {
      .boardShakeFx {
        animation-name: littleShake;
        animation-fill-mode: forwards;
      }

      .table {
        //height: 100px;
        width: 100%;
        outline: solid 1px;
        padding-top: 100px;
        padding-left: 30px;
        padding-bottom: 100px;

        @L: 30px;
        //@M: 5px;
        @M: 0;
        background-color: #d3a969;

        .tableLine {
          height: @L;
          margin-bottom: @M;
          //outline: solid 1px;

          .tableBoxShakeFx {
            animation-name: small;
            animation-fill-mode: forwards;
          }

          .tableBoxHover {
            outline-width: 3px;
            z-index: 4;
            transform: scale(1.5);

          }

          .tableBox {
            //outline: solid 1px red;
            width: @L;
            height: @L;
            margin-left: @M;
            float: left;
            transition: all 0.2s;
            position: relative;


            .block {
              width: 100%;
              height: 100%;
              z-index: 3;
              position: absolute;
              left: 0;
              top: 0;
              transition: outline-color 0.5s;
              outline-width: 3px;
              outline-color: transparent;
              border-radius: 50%;

              &:hover {
                cursor: pointer;
                outline-style: solid;
              }
            }

            .bz {
              display: block;
              position: absolute;
              left: 0;
              top: 0;
              width: 100%;
              height: 100%;
              z-index: 0;
              //background-image: url("../img/normal.png");
              background-size: contain;

              &:hover {
                filter: blur(5px);
              }
            }


            .littleStone {
              // 小碎石子
              position: absolute;
              border-radius: 50%;
              left: 50%;
              top: 50%;
              //outline: solid 3px red;
              z-index: 1;
              transition-timing-function: ease-out;
            }


            // 死亡特效
            .shrink {
              position: absolute;
              width: @L;
              height: @L;
              left: 0;
              top: 0;
              border-radius: 50%;

              z-index: 100;
              animation-name: blockBoom;
              animation-fill-mode: forwards;

            }

            .putFx {
              position: absolute;
              width: @L;
              height: @L;
              left: 0;
              top: 0;
              border-radius: 50%;

              animation-name: putFx;
              animation-fill-mode: forwards;
              animation-timing-function: ease-in-out;
            }

            .wall {
              background-color: dimgray;
              border-radius: 20%;
              outline: none;

              &:hover {
                cursor: not-allowed;
              }
            }

            .fireStone {
              background-color: #ea4040;
              border: solid 3px gold;
              border-radius: 20%;
              outline: none;
              //animation-name: fireFlame;
              //animation-duration: 5s;
              //animation-iteration-count: infinite;
              //animation-timing-function: linear;

              &:hover {
                cursor: not-allowed;
              }
            }

            .fireStoneMoveFx {
              background-color: #ea4040;
              border: solid 3px gold;
              border-radius: 20%;
              outline: none;
              //position: absolute;
              //left: 0;
              //top: 0;
              //border-radius: 50%;
              //background-color: #ea4040;
              //filter: blur(5px);
              width: @L;
              height: @L;
            }

            .playerBlock {
              border-radius: 50%;

              &:hover {
                cursor: auto;
              }
            }
          }


        }

      }
    }
  }
}
